from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

def login_test():
    # 启动浏览器
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)  # 设置隐式等待
    
    try:
        # 访问登录页面
        print("访问登录页面...")
        driver.get("http://novel.hctestedu.com/user/login.html")
        time.sleep(2)
        # 输入用户名和密码
        # 注意：这里使用通用的选择器，实际可能需要根据网页具体结构调整
        print("输入登录信息...")
        # 尝试通过id定位输入框
        username_input = driver.find_element(By.ID, "txtUName")
        password_input = driver.find_element(By.ID, "txtPassword")
        
        # 输入测试账号（这里使用示例账号，实际使用时需要替换为真实账号）
        username_input.clear()
        username_input.send_keys("testuser")  # 替换为实际测试账号
        
        password_input.clear()
        password_input.send_keys("password123")  # 替换为实际测试密码
        
        # 点击自动登录复选框（如果存在）
        try:
            remember_checkbox = driver.find_element(By.CSS_SELECTOR, "input[type='checkbox']")
            if not remember_checkbox.is_selected():
                remember_checkbox.click()
        except:
            print("未找到自动登录复选框，跳过")
        
        # 点击登录按钮
        print("点击登录按钮...")
        login_button = driver.find_element(By.ID, "btnLogin")
        
        login_button.click()
        
        # 等待登录完成，检查是否登录成功
        print("等待登录结果...")
        time.sleep(3)  # 短暂等待
        error_span = driver.find_element(By.ID, "LabErr")
        assert error_span.text == "手机号格式不正确！"
        print("登录失败，手机号格式错误，测试用例执行成功")
        
    except Exception as e:
        print(f"测试过程中发生错误: {str(e)}")
        # 保存截图以便调试
        driver.save_screenshot("login_error.png")
        print("错误截图已保存为 login_error.png")
    finally:
        # 等待一段时间以便观察结果
        time.sleep(5)
        # 关闭浏览器
        driver.quit()
        print("浏览器已关闭")

if __name__ == "__main__":
    print("开始执行登录自动化测试...")
    login_test()
    print("登录测试执行完毕")